package cn.tedu.oop2;
/**本类用作抽象类中的成员测试*/
public class AbstractDemo3 {
    public static void main(String[] args) {
        Fruit f=new Banana();
        System.out.println(f.age);
        f.setAge1(4);
        System.out.println(f.getAge1());
        System.out.println(f.B);
        System.out.println(f.b);
        f.eat();
        f.eat1();
        f.sleep();
        f.sleep1();
    }
}
//1.创建抽象父类Fruit
abstract class Fruit{
    /**1.抽象类中可以定义成员变量吗？--可以*/
    int age;
    private int age1;

    public int getAge1() {
        return age1;
    }

    public void setAge1(int age1) {
        this.age1 = age1;
    }

    /**2.抽象类中可以定义成员常量吗？--可以*/
    final int B=2;
    final int b=3;
    /**3.抽象类中可以定义普通方法吗？--可以*/
    public void eat(){
        System.out.println("您吃了吗");
    }
    /**4.抽象类中可以定义抽象方法吗？--可以*/
    public abstract void sleep();
    /**5.抽象类中可以全是普通方法吗？--可以*/
    /**如果一个类中都是普通方法，那它为什么还要被修饰成抽象类呢？
     * 因为：抽象类不可以被实例化，所以如果不想让外界创建本类的对象
     * 就可以把普通类声明成抽象类*/
    public void eat1(){
        System.out.println("您睡了吗");
    }
    /**6.抽象类中可以全是抽象方法吗？--可以*/
    public abstract void sleep1();


}
//2.创建子类香蕉类
class Banana extends Fruit{
    @Override
    public void sleep() {
        System.out.println("您吃了吗1");

    }

    @Override
    public void sleep1() {
        System.out.println("您睡了吗1");

    }
}